import java.util.*;


public class ListeBus {
	public ArrayList <Bus> Buss;
	public static Scanner sc = new Scanner(System.in);
	
	
	public ListeBus(){
		 Buss = new ArrayList<Bus>();
		 this.Buss.add(new Bus(20,00));
		 this.Buss.add(new Bus(20,30));
		 this.Buss.add(new Bus(21,00));
		
	}
	public void menu(Participant p){
		String choix;
		System.out.println("Bienvenue dans le menu de reservation de place de bus");
		System.out.println("Selectionner:");
		System.out.println("1 - pour reserver une place de bus");
		System.out.println("2 - pour annuler une reservation de place");
		System.out.println("3 - pour revenir au menu principal");
		System.out.println("4 - pour quitter le programme");
		choix=sc.next();
		switch (choix){
	case "1" : menuReserver(p);break;
	case "2" : enlever(p);break;
	case "3" : Menu.menuPrincipal();break;
	case "4" : System.exit(0);
	default:System.out.println("Erreur de valeur");Menu.menuPrincipal(); break;

		}
	}
	
		
		public Bus rechercherBus(int id){
			for(int i=0; i<Buss.size();i++){
				if((Buss.get(i)).id==id){
					return Buss.get(i);
				}
			}
			return null;
		}
		
		public boolean enlever(Participant p){
			if(dejaReserver(p)){
				(this.rechercherBus(Integer.parseInt(p.bus))).supprimer(p);
				return true;
			}
			System.out.println("Vous n'avez pas encore reserver");
			return false;
		}
		
		public void menuReserver(Participant p) {
			if(this.dejaReserver(p)){
				System.out.println("Vous avez deja reserver une place de bus ! Pour en changer veuillez enlever votre premiere reservation.");
				Menu.menuPrincipal();
			}
			int choix;
			
				System.out.println(this.toString());
				System.out.println("Selectionner une horaire : ");
				System.out.println("1 2, ou 3 (0 : retour) :");
				choix=sc.nextInt();
				if ((choix<0)||(choix>4))
				{
					System.out.println("Erreur de valeur");
					Menu.menuPrincipal(); 
				}
					
				Bus b = this.rechercherBus(choix);
				
				if(!b.estPlein()){
					b.ajouter(p);System.out.println("OK");Menu.menuPrincipal();
				}
				else{
					System.out.println("Pas assez de place pour cette horaire !");
				}
			
		}
		
		public boolean dejaReserver(Participant p){
			for(int i=0; i<Buss.size();i++){
				int t =Buss.get(i).gens.length;
				for(int j=0; j<t ;j++){
					if(Buss.get(i).gens[j]==p)
						return true;
				}
			}return false;
		}
	
	public Bus rechercheBus(int i){
		if((i<1)||(i>3)) {
			System.out.println("Erreur de valeur");
			Menu.menuPrincipal(); 
		}
		
		switch(i){
		case 1 : return Buss.get(0);
		case 2 : return Buss.get(1);
		case 3 : return Buss.get(2);
		}
		return null;
	}
	
	public String toString(){
			String str="Liste des Bus : \n";
			for(int i=0; i<Buss.size();i++){
				str+=(Buss.get(i)).toString()+"\n";
			}
			return str;
		}
	
}
